Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Pascal - [pascal] ordinare un vettore secondo proprieta
Forum - Pascal - [pascal] ordinare un vettore secondo proprieta

Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
Ciao a tutti,
Ho un problema la mia prof di informatica mi da il seguente problema:

Dato un vettore di n componenti dire se gode della seguente proprietà:
1a componente maggiore di quelle successive
2a minore delle successive
3a maggiore delle successive
4a minore delle succesive
ecc

non so come devo fare vi posto il codice che sono riuscito a fare :


codice:

program vent;
uses wincrt;
const n=6;
type vettore=array[1..n]of integer;
var v:vettore;    
co:vettore;    
i,j,aiuto:integer;
begin
   for i:=1 to n do    
     begin      
         writeln('inserisci la ',i,'ª componente');
         readln(v);    
    end;      
for i:=1 to n do      
for j:=2 to n do      
begin        
if v<v[j] then                      
  begin                  
            aiuto:=v;    
            v:=v[j];
             v[j]:=aiuto;
  end;        
if v[i+1]>v[j] then
                          begin      
                         aiuto:=v[j];
                         v[j]:=v[i+1];
                         v[i+1]:=aiuto;
                         end;
end;
writeln;    
for i:=1 to n do writeln(v);  
end.



vi prego aiutatemi mi boccia se non glielo porto domani!!!!!!!!

PM Quote
Avatar
Anonymous (Member)
Guru


Messaggi: 1059
Iscritto: 30/07/2006

Segnala al moderatore
Postato alle 19:28
Lunedì, 30/03/2009
Se ho capito bene dovrebbe essere cosi

[EDIT]
a scusa.. non avevo letto l'eccetera... pensavo si fermasse solo al quarto componente... quindi niente si dovrebbe mettere un ciclo..... il programma di seguito controlla solo i primi 4 elementi gli altri no...
cmq ti ho dato una base... dovresti farglielo fare iterativamente con un ciclo)
[/EDIT]

Codice sorgente - presumibilmente Delphi

  1. program prova;
  2. uses crt;
  3. const n=9;
  4. var i:integer;
  5.     vettore: array[0..n] of integer;
  6.     soddisfatta:boolean;
  7. begin
  8.  
  9.  for i:=0 to n do
  10.   begin
  11.    writeln('Inserisci l''elemento numero ',i,' del vettore');
  12.    readln(vettore[i]);
  13.   end;
  14.  soddisfatta:=true;
  15.  for i:=1 to n-1 do
  16.   begin
  17.    if vettore[0]<=vettore[i] then
  18.     soddisfatta:=false;
  19.   end;
  20.  
  21.   if soddisfatta=true then
  22.    for i:=2 to n-1 do
  23.     begin
  24.      if vettore[1]>=vettore[i] then
  25.       soddisfatta:=false;
  26.     end;
  27.  
  28.     if soddisfatta=true then
  29.      for i:=3 to n-1 do
  30.       begin
  31.        if vettore[2]<=vettore[i] then
  32.         soddisfatta:=false;
  33.       end;
  34.  
  35.     if soddisfatta=true then
  36.      for i:=4 to n-1 do
  37.       begin
  38.        if vettore[3]>=vettore[i] then
  39.         soddisfatta:=false;
  40.       end;
  41.  
  42.     if soddisfatta=true then
  43.      writeln('Il tuo vettore soddisfa la proprieta''')
  44.     else
  45.      writeln("il tuo vettore non soddisfa la proprieta''');
  46.  
  47.    readln;
  48. end.


Ultima modifica effettuata da Anonymous il 30/03/2009 alle 19:44
PM Quote
Avatar
gigisoft (Member)
Guru


Messaggi: 696
Iscritto: 11/10/2008

Segnala al moderatore
Postato alle 13:04
Martedì, 31/03/2009
Così dovrebbe essere un pò meglio
Codice sorgente - presumibilmente Delphi

  1. program prova;
  2. uses crt;
  3. const n=9;
  4. var i, j:integer;
  5.     vettore: array[1..n] of integer;
  6.     soddisfatta: array[1..n] of boolean;
  7. begin
  8.  
  9. for i:=1 to n do
  10.   begin
  11.    writeln('Inserisci l''elemento numero ',i,' del vettore');
  12.    readln(vettore[i]);
  13.    soddisfatta[i] := true;
  14.   end;
  15.    
  16. soddisfatta:=true;
  17.  
  18. for i:=1 to n-1 do
  19.   begin
  20.  
  21.     if ((i mod 2) = 0) then
  22.      for j := i + 1 to n do
  23.        soddisfatta[i] := soddisfatta[i] And (vettore[i] <= vettore[j])
  24.     else
  25.      for j := i + 1 to n do
  26.        soddisfatta[i] := soddisfatta[i] And (vettore[i] >= vettore[j])
  27.  
  28.     if soddisfatta[i] then
  29.        writeln('Il tuo vettore soddisfa la proprieta'' sull''elemento ', i)
  30.       else
  31.        writeln("il tuo vettore non soddisfa la proprieta'' sull''elemento ', i');
  32.  
  33.   end;
  34.    
  35.   readln;
  36. end.



Luigi :k:

PM Quote
Avatar
Anonymous (Member)
Guru


Messaggi: 1059
Iscritto: 30/07/2006

Segnala al moderatore
Postato alle 15:43
Martedì, 31/03/2009
si... direi di si ;)

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 18:06
Martedì, 31/03/2009
Vi ringrazzio siete grandi

PM Quote